জাভাস্ক্রিপ্টে ক্লাস হল একটি ব্লুপ্রিন্ট বা টেমপ্লেট যা অবজেক্ট তৈরি করার জন্য ব্যবহৃত হয়। এটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) ধারণাকে সহজ করে তোলে এবং কোডের সংগঠন, পুনরায় ব্যবহারযোগ্যতা এবং রক্ষণাবেক্ষণযোগ্যতা বৃদ্ধি করে। ES6 (ECMAScript 2015) এর সাথে পরিচিত এই ফিচারটি প্রোটোটাইপ-ভিত্তিক জাভাস্ক্রিপ্টের উপর ভিত্তি করে তৈরি হলেও, এটি ক্লাস-ভিত্তিক প্রোগ্রামিংয়ের সুবিধা প্রদান করে।
ক্লাস হল একটি কাঠামো যা নির্দিষ্ট ধরনের অবজেক্ট তৈরি করতে ব্যবহৃত হয়। প্রতিটি ক্লাসের মধ্যে কনস্ট্রাক্টর এবং মেথড থাকে, যা অবজেক্টের প্রপার্টি এবং কার্যকলাপ নির্ধারণ করে।
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log(`হ্যালো, আমার নাম ${this.name} এবং আমি ${this.age} বছর বয়সী।`);
}
}
const person1 = new Person("আলিস", ২৫);
person1.greet(); // আউটপুট: হ্যালো, আমার নাম আলিস এবং আমি ২৫ বছর বয়সী।
কনস্ট্রাক্টর হল একটি বিশেষ মেথড যা নতুন অবজেক্ট তৈরি করার সময় স্বয়ংক্রিয়ভাবে কল হয়। এটি অবজেক্টের প্রপার্টি বা ফিল্ড ইনিশিয়ালাইজ করতে ব্যবহৃত হয়।
মেথড হল ফাংশন যা ক্লাসের অবজেক্টের সাথে সম্পর্কিত কার্যকলাপ নির্ধারণ করে। এগুলি অবজেক্টের প্রপার্টি পরিবর্তন করতে বা তথ্য প্রদর্শন করতে ব্যবহৃত হয়।
ইনহেরিটেন্স হল ক্লাসগুলির মধ্যে সম্পর্ক স্থাপন করার একটি পদ্ধতি, যেখানে একটি ক্লাস অন্য ক্লাসের বৈশিষ্ট্য এবং মেথড উত্তরাধিকারসূত্রে পায়। এটি কোড পুনরায় ব্যবহারযোগ্যতা বৃদ্ধি করে এবং ক্লাসগুলির মধ্যে সম্পর্ক স্পষ্ট করে।
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} একটি শব্দ করে।`);
}
}
class Dog extends Animal {
speak() {
console.log(`${this.name} ডাঁড়ায়।`);
}
}
const dog1 = new Dog("বাডি");
dog1.speak(); // আউটপুট: বাডি ডাঁড়ায়।
স্ট্যাটিক মেথড হল ক্লাসের মেথড যা সরাসরি ক্লাস থেকে কল করা হয়, না যে কোনো অবজেক্ট থেকে। এগুলি সাধারণত ক্লাস-ভিত্তিক কাজ বা সহায়ক ফাংশন হিসেবে ব্যবহৃত হয়।
class MathOperations {
static add(a, b) {
return a + b;
}
static multiply(a, b) {
return a * b;
}
}
console.log(MathOperations.add(৩, ৪)); // আউটপুট: ৭
console.log(MathOperations.multiply(৩, ৪)); // আউটপুট: ১২
ES2022 থেকে, জাভাস্ক্রিপ্টে প্রাইভেট প্রপার্টি এবং মেথড সমর্থন করা হয়েছে। এগুলি ক্লাসের বাইরে থেকে অ্যাক্সেস করা যায় না, যা ডেটা হাইডিং এবং ইনক্যাপসুলেশন নিশ্চিত করে।
class Person {
#name; // প্রাইভেট প্রপার্টি
constructor(name, age) {
this.#name = name;
this.age = age;
}
greet() {
console.log(`হ্যালো, আমার নাম ${this.#name} এবং আমি ${this.age} বছর বয়সী।`);
}
}
const person1 = new Person("বব", ৩০);
person1.greet(); // আউটপুট: হ্যালো, আমার নাম বব এবং আমি ৩০ বছর বয়সী।
console.log(person1.#name); // Error: Private field '#name' must be declared in an enclosing class
গেটার এবং সেটার মেথডের মাধ্যমে ক্লাসের প্রপার্টি অ্যাক্সেস এবং পরিবর্তন করা সহজ হয়। এগুলি প্রপার্টির মান নিয়ন্ত্রণ করতে এবং ডেটা ভ্যালিডেশন করতে ব্যবহৃত হয়।
class Rectangle {
constructor(width, height) {
this.width = width;
this.height = height;
}
// গেটার
get area() {
return this.width * this.height;
}
// সেটার
set area(value) {
this.height = value / this.width;
}
}
const rect = new Rectangle(১০, ৫);
console.log(rect.area); // আউটপুট: ৫০
rect.area = ১০০;
console.log(rect.height); // আউটপুট: ১০
জাভাস্ক্রিপ্টে ক্লাস এবং ফাংশন উভয়ই অবজেক্ট তৈরি করতে ব্যবহৃত হয়, তবে ক্লাস ব্যবহার করলে কোড আরও পরিষ্কার এবং সংগঠিত হয়। ক্লাসের সিনট্যাক্স ফাংশন ভিত্তিক পদ্ধতির তুলনায় বেশি পাঠযোগ্য এবং রক্ষণাবেক্ষণযোগ্য।
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.greet = function() {
console.log(`হ্যালো, আমার নাম ${this.name} এবং আমি ${this.age} বছর বয়সী।`);
};
const person1 = new Person("সারা", ২৮);
person1.greet(); // আউটপুট: হ্যালো, আমার নাম সারা এবং আমি ২৮ বছর বয়সী।
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log(`হ্যালো, আমার নাম ${this.name} এবং আমি ${this.age} বছর বয়সী।`);
}
}
const person1 = new Person("সারা", ২৮);
person1.greet(); // আউটপুট: হ্যালো, আমার নাম সারা এবং আমি ২৮ বছর বয়সী।
জাভাস্ক্রিপ্টের ক্লাসগুলি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ধারণাকে সহজে ব্যবহারযোগ্য করে তোলে। ক্লাসের মাধ্যমে কোড আরও সংগঠিত, পুনরায় ব্যবহারযোগ্য এবং রক্ষণাবেক্ষণযোগ্য হয়। কনস্ট্রাক্টর, মেথড, ইনহেরিটেন্স, স্ট্যাটিক মেথড, প্রাইভেট প্রপার্টি এবং গেটার/সেটার মেথডের মতো বৈশিষ্ট্যগুলি কোডের কার্যকারিতা বৃদ্ধি করে এবং ডেভেলপারদের জন্য কোড লেখা সহজ করে তোলে। ক্লাসের সাহায্যে বড় এবং জটিল প্রজেক্টগুলিতে কোডের কাঠামো বজায় রাখা সহজ হয়, যা উন্নত এবং নির্ভরযোগ্য সফটওয়্যার তৈরি করতে সহায়ক হয়।
ক্লাস সম্পর্কে গভীর জ্ঞান অর্জন করলে আপনার জাভাস্ক্রিপ্ট প্রোগ্রামিং দক্ষতাও বৃদ্ধি পাবে, যা আরও উন্নত এবং কার্যকরী কোড লেখার ক্ষেত্রে সহায়ক হবে।
common.read_more